home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
The Arsenal Files 1
/
The Arsenal Files (Arsenal Computer).ISO
/
os2_app
/
cs0056.lst
< prev
next >
Wrap
File List
|
1994-03-03
|
54KB
|
664 lines
============================================================================
| |
| C Set/2 Release 1.0 Fixes |
| |
============================================================================
| APAR Number | Problem Description |
---------------+------------------------------------------------------------
| PJ03523 | Optimization Problem: Bad register selection causes |
| | general protection fault at runtime. |
---------------+------------------------------------------------------------
| PJ03662 | Optimization Problem: Bad register selection around a |
| | call causes incorrect output at runtime. |
---------------+------------------------------------------------------------
| PJ03682 | Optimization Problem: Tail call optimization was altering |
| | a register erroneously. |
---------------+------------------------------------------------------------
| PJ03767 | The compiler could not open files with names containing |
| | DBCS characters where the second byte of the characters |
| | was 0x5C. |
---------------+------------------------------------------------------------
| PJ03923 | Optimization Problem: Generated floating-point code was |
| | causing the floating-point register stack to overflow or |
| | underflow. |
---------------+------------------------------------------------------------
| PJ03948 | Optimization Problem: Multiplying by constant negative |
| | numbers which are powers of 2 was causing incorrect code |
| | to be generated. |
---------------+------------------------------------------------------------
| PJ03952 | Optimization Problem: Multiplying by constants that are |
| | near powers of 2 was causing incorrect code to be |
| | generated. |
---------------+------------------------------------------------------------
| PJ03957 | Compiler was emitting object records longer than the |
| | linker's 1024 byte limit. This causes the linker to |
| | produce the message "L1057: data record too large. |
| | |
| | NOTE: There is more than one cause for this symptom |
| | and fix coming soon. |
---------------+------------------------------------------------------------
| NOAPAR | Compile time performance was improved. |
---------------+------------------------------------------------------------
| NOAPAR | The compiler was unable to find files in a subdirectory |
| | on a LAN drive. |
============================================================================
| |
| All the fixes listed above were included in CS00008 |
| |
============================================================================
| PJ04295 | The kbhit library function was not working. |
============================================================================
| |
| All the fixes listed above were included in CS00009 |
| |
============================================================================
| PJ04465 | The cprintf, fprintf, printf, and sprintf functions were |
| | not printing floating-point values between 0.5 and 1.0 |
| | correctly when zero precision was specified. |
============================================================================
| |
| All the fixes listed above were included in CS00010 |
| |
============================================================================
| PJ04602 | Optimization Problem: Simple loops with induction variable|
| | increments greater than one were being incorrectly turned |
| | into memset or memcpy builtin function calls. |
---------------+------------------------------------------------------------
| PJ04604 | When the compiler turned switch statements into jump |
| | tables, default code segment was always being referenced |
| | even the if the function containing the switch statement |
| | was specified in an alloc_text pragma. |
---------------+------------------------------------------------------------
| PJ04652 | Optimization Problem: The stack pointer was not being |
| | decremented before an indirect _Optlink call where the |
| | return value was being used as a parameter to a tail call.|
---------------+------------------------------------------------------------
| PJ04674 | When #pragma handler was specified for a 32-bit callback |
| | function the compiler generated bad code for copying the |
| | parameters from the 16-bit stack to the 32-bit stack. |
============================================================================
| |
| All the fixes listed above were included in CS00011 |
| |
============================================================================
| PJ04811 | Incorrect code was being generated for a complicated |
| | expression where a short variable was being added to the |
| | address of an element of an array of structures. |
---------------+------------------------------------------------------------
| PJ05088 | Optimization Problem: The compiler was trapping when |
| | optimizing a loop containing a divide and modulo operation|
| | with the same operands. |
---------------+------------------------------------------------------------
| PJ05100 | Optimization Problem: Incorrect code was being generated |
| | for a switch statement containing a case zero where the |
| | switch variable had to be converted to an int from an |
| | unsigned char. |
---------------+------------------------------------------------------------
| PJ05124 | Incorrect code was being generated when the result of |
| | comparing two shorts with less than or greater than |
| | operators was stored into an integer variable. |
---------------+------------------------------------------------------------
| PJ05140 | Incorrect code was being generated for _Optlink functions |
| | that have a number of floating-point or aggregate |
| | parameters followed by integer parameters. |
============================================================================
| |
| All the fixes listed above were included in CS00012 |
| |
============================================================================
| PJ05013 | The compiler was trapping when trying to compile a |
| | complicated expression where the address of an element of |
| | an array of structures was indexed and then a member of |
| | the structure was accessed. |
---------------+------------------------------------------------------------
| PJ04674 | The problem with #pragma handler on callback functions was|
| | really only a problem with _Far16 _Cdecl callback |
| | functions. So the fix in CSD0011 broke the case where |
| | #pragma handler was used on a _Far16 _Pascal callback |
| | function. Now both work. |
---------------+------------------------------------------------------------
| PJ04390 | The C runtime termination routine was not freeing all |
| | storage allocated during initialization. |
---------------+------------------------------------------------------------
| PJ05087 | Partial static initialization of a structure containing |
| | a union containing a structure containing bitfields was |
| | not working. |
---------------+------------------------------------------------------------
| NOAPAR | Some enhancements were made to the compiler to reduce |
| | memory usage dring compilation and therefore reduce |
| | compile times. |
============================================================================
| |
| All the fixes listed above were included in CS00013 |
| |
============================================================================
| PJ05087 | The assembler listing was incorrect after the real problem|
| | was fixed in CSD0013. |
---------------+------------------------------------------------------------
| PJ05225 | Optimization Problem: The compiler was trapping when |
| | optimizing a procedure containing a loop nested within |
| | another loop where an invariant in the inner loop was an |
| | induction variable for the outer loop. |
---------------+------------------------------------------------------------
| PJ05230 | Optimization Problem: Incorrect code was generated for an |
| | Optlink function containing a loop where an invariant was |
| | a register parameter and it was used in a conditional |
| | expression within the loop. |
---------------+------------------------------------------------------------
| PJ05393 | Optimization Problem: The compiler was trapping when |
| | compiling code with consecutive calls to strcat with the |
| | same first parameter. |
---------------+------------------------------------------------------------
| PJ05431 | Optimization Problem: The compiler was incorrectly |
| | removing a store to a local variable before a loop. |
---------------+------------------------------------------------------------
| PJ05450 | The thunk prolog routine was using 64K too much stack in |
| | certain situations. |
============================================================================
| |
| All the fixes listed above were included in CS00014 |
| |
============================================================================
| PJ05225 | The original fix for this problem may have caused other |
| | optimization problems. Now we believe that we have a |
| | complete fix for this problem. |
---------------+------------------------------------------------------------
| PJ05303 | Optimization Problem: A parameter in an _Optlink function |
| | that was assigned to a global register was not being kept |
| | alive long enough. |
---------------+------------------------------------------------------------
| PJ05737 | A "data record too large" message from the linker was |
| | being generated when a union where the first member was |
| | more than 1024 bytes smaller than another member was |
| | being initialized OR when an aggregate within a user data |
| | segment was uninitialized. |
---------------+------------------------------------------------------------
| PJ05722 | The compiler was generating an IMUL instruction with an |
| | operand size prefix but the constant was 32 bits long |
| | instead of 16-bits long. |
---------------+------------------------------------------------------------
| PJ05723 | Optimization Problem: The compiler was trapping when |
| | trying to optimize a floating-point intensive procedure |
| | where floating-point spills and reloads were necessary. |
---------------+------------------------------------------------------------
| PJ05716 | The compiler was emitting stack probes when the size of |
| | all local variables was greater than 4K instead of when |
| | the size is greater than 2K. In some cases, stack probes |
| | were being emitted in the wrong place as well. This |
| | would cause strange traps to occur in multi-threaded |
| | programs. |
---------------+------------------------------------------------------------
| PJ05728 | Stack probes were not enabled during compilation of |
| | multi-threaded runtime library code. |
---------------+------------------------------------------------------------
| PJ05556 | The runtime library termination routine was not checking |
| | to make sure runtime initialization had completed. |
---------------+------------------------------------------------------------
| NOAPAR | Provides a means to set the number of spaces to be |
| | inserted when tabs are encountered in the source file. |
| | The default tab expansion is 8 spaces, as it was in the |
| | orignal IPMD. A new environment variable, PMDTAB, is now |
| | available to customize the tab expansion constant. For |
| | example, "SET PMDTAB=5" causes 5 spaces to be inserted |
| | for every tab. |
---------------+------------------------------------------------------------
| PJ05863 | In multithreaded applications, the debugger would perform |
| | a "Run" when a "Step over" or a "Step debug" was |
| | requested. |
---------------+------------------------------------------------------------
| PJ05148 | Internal debugger errors were sometimes reported when |
| | performing a "Find" and when scrolling the source view. |
---------------+------------------------------------------------------------
| PJ05117 | Occasionally the debugger would automatically shut itself |
| | down when creating or scrolling a source view. Included |
| | in this APAR is a problem in which the application is left|
| | active when the debugger terminates after an exception. |
---------------+------------------------------------------------------------
| NOAPAR | General internal PM debugging enhancements. |
---------------+------------------------------------------------------------
| NOAPAR | General internal storage window enhancements. |
---------------+------------------------------------------------------------
| NOAPAR | The name displayed for a subscripted array (i.e., x(i)) |
| | is not always updated - if the value remains the same |
| | while the name changes, the name is not updated. |
---------------+------------------------------------------------------------
| NOAPAR | If the stack window is open and data is entered in the |
| | application window, the stack view can display the wrong |
| | part name for a function name. This can also cause the |
| | debugger to crash if the focus is changed between the |
| | source, the stack, and the application several times. |
============================================================================
| |
| All the fixes listed above were included in CS00022 |
| |
============================================================================
| NOAPAR | Exception handler registration records were causing stack |
| | chaining to be disabled because of their location in the |
| | instruction stream. |
---------------+------------------------------------------------------------
| PJ06109 | Optimization Problem: Multiplication by some particular |
| | constants was being done incorrectly when the /G4 switch |
| | was specified. |
---------------+------------------------------------------------------------
| PJ06417 | The compiler was not generating code to check for NULL |
| | before calling _DosSelToFlat when a 16-bit pointer was |
| | being converted to a 32-bit pointer. |
---------------+------------------------------------------------------------
| PJ06023 | Optimization Problem: The wrong register was being used |
| | when a virtual global register was reassociated with a |
| | different real register. This showed up with nested loops |
| | where an induction variable in an outer loop is an |
| | invariant within an inner loop. |
---------------+------------------------------------------------------------
| NOAPAR | Optimization Problem: Multiplication by certain negative |
| | constants was being done incorrectly. |
---------------+------------------------------------------------------------
| PJ06022 | Optimization Problem: A parameter register was not being |
| | kept alive until the end of a loop when the last use of |
| | the parameter is within the loop. |
---------------+------------------------------------------------------------
| PJ05928 | Floating Point Number Formatting Problem: Printf |
| | formating with %g was crashing if the precision |
| | requested exceeded 16 digits. |
---------------+------------------------------------------------------------
| PJ06439 | Ceil and Floor Functions did not restore 387 flags. |
---------------+------------------------------------------------------------
| PJ06454 | Exception Handler Problem: If an exception occurs during |
| | a library critical routine, and a second user exception |
| | occurs while in a nested critical routine belonging to |
| | the first exception, the exception handler will loop and |
| | hang the process. |
---------------+------------------------------------------------------------
| PJ06436 | Optimization Problem: Statements of the form: |
| | "if (bool) {x.a = const} else {x.b = const}" were being |
| | simplified incorrectly to "x.a=const". |
============================================================================
| |
| All the fixes listed above were included in CS00026 |
| |
============================================================================
| NOAPAR | DBCS enablement changes to IPMD. |
| | Add the keyboard status indicator to the dialogs. |
---------------+------------------------------------------------------------
| NOAPAR | DBCS enabled. Fixed the stack probe option. |
| | Updated help text for the stack probe option and added |
| | the key help for the DDE4CSET.DLL. |
---------------+------------------------------------------------------------
| PJ06460 | Optimization Problem: If an extern is modified inside a |
| | loop while it's in a register, jumping from within that |
| | loop to a return could sometimes bypass the code that |
| | copies the register back to memory. |
---------------+------------------------------------------------------------
| PJ06459 | Optimization Problem: Consecutive calls to the memmove, |
| | memcpy, or memset functions with similar destination |
| | addresses could fail if the returned address from the |
| | first call is used before the second call. |
---------------+------------------------------------------------------------
| PJ06584 | Occasionally with optimization, loop exits coinciding with|
| | function exits caused incorrect termination of the loop. |
---------------+------------------------------------------------------------
| PJ06610 | Optimization Problem: Statements of the form: |
| | "if (bool) {x = const0} else {x = const1}" could cause |
| | a compile-time exception if "x" is an address. |
---------------+------------------------------------------------------------
| PJ06593 | Optimization Problem: Statements of the form given above |
| | (PJ06610) could be incorrectly optimized if the "bool" |
| | expression does not contain a relational or equality |
| | operator. For example: (bool) or (!bool). |
---------------+------------------------------------------------------------
| PJ06637 | Passing structs by value during _Optlink calls could cause|
| | the caller to incorrectly set up subsequent parameters. |
---------------+------------------------------------------------------------
| PJ06742 | The compiler could incorrectly set up the return register |
| | for calls to _DosFlatToSel with 16-bit function pointers, |
| | and thus cause register selection problems. |
---------------+------------------------------------------------------------
| PJ06583 | Optimization Problem: Gotos within the inner loop of a |
| | nested loop could cause incorrect spilling of a variable |
| | if the variable was used in the inner loop but not in |
| | the outer loops. |
---------------+------------------------------------------------------------
| PJ06813 | Optimization Problem: A floating-point cast of the same |
| | integer variable both before and inside an "if" could |
| | cause the floating-point stack to become inconsistant. |
---------------+------------------------------------------------------------
| PJ06623 | Freopen Library Function: freopen function did not allow |
| | the changing of the text/binary mode of a standard stream |
| | without redirecting to a different file. For example: |
| | freopen( "", "rb", stdin ); |
---------------+------------------------------------------------------------
| PJ06904 | Relax some of the restrictions on arrays of incomplete |
| | types so that cfront-generated code can compile. |
---------------+------------------------------------------------------------
| PJ06776 | When a comma operator is used to evaluate the address |
| | of a function being called, an internal compiler error |
| | occurs. Code Generation of Front End now fixed. |
============================================================================
| |
| All the fixes listed above were included in CS00028 |
| |
============================================================================
| PJ06624 | Optimization Problem: Using the address of a parameter |
| | passed in a register could cause the compiler to trap |
| | if basic blocks are merged. |
---------------+------------------------------------------------------------
| PJ06768 | Optimization Problem: Multiplying two addresses that have |
| | been cast to integers could cause the compiler to trap. |
---------------+------------------------------------------------------------
| PJ06846 | Optimization Problem: A large number of consecutive |
| | statements that each use values calculated in previous |
| | statements could cause the swapper to grow very large. |
---------------+------------------------------------------------------------
| PJ06841 | Optimization Problem: The compiler could trap if the last |
| | "if" in a loop turns into a jump to the top of the loop. |
============================================================================
| |
| All the fixes listed above were included in CS00030 |
| |
============================================================================
| PJ06929 | Optimization Problem: A ternary within a loop could in |
| | very rare cases cause a global register to be incorrectly |
| | clobbered. |
---------------+------------------------------------------------------------
| PJ06881 | Folding of the following expressions incorrectly removed |
| | x if x had side effects: (0 / x) ---> 0 |
| | (0 % x) ---> 0 |
| | (x % 1) ---> 0 |
| | (x % -1) ---> 0 |
| | (x * 0) ---> 0 |
| | (x & 0) ---> 0 |
| | (x | -1) ---> -1 |
---------------+------------------------------------------------------------
| PJ06862 | Optimization Problem: This is a more general fix to the |
| | problem dealt with in PJ06846. |
---------------+------------------------------------------------------------
| PJ06908 | Without optimization, casts from an unsigned short to a |
| | double could yield incorrect conversions. The problem |
| | disappears when compiling with /O+. |
---------------+------------------------------------------------------------
| NOAPAR | Allow ASCII characters above 0x80 to display in the |
| | source view of the debugger |
============================================================================
| |
| All the fixes listed above were included in CS00032 |
| |
============================================================================
| PJ07151 | Optimization Problem: Transformation of a simple loop to |
| | either a memset or a memcpy could create initialization |
| | problems if the loop induction variable is unsigned. |
---------------+------------------------------------------------------------
| PJ07244 | Optimization Problem: The constant value stored during |
| | the builtin memset could be incorrectly calculated for |
| | char and short types. |
---------------+------------------------------------------------------------
| PJ06920 | Preprocessor Problem: If a macro replacement token is |
| | empty, in some cases we were erroneously substituting |
| | it with a right parenthesis. |
---------------+------------------------------------------------------------
| PJ07198 | Optimization Problem: Dead store removal within loops |
| | failed to consider conditional stores and thus could |
| | incorrectly remove a store that was not dead. |
---------------+------------------------------------------------------------
| PJ06024 | Optimization Problem: Bad invariant code motion could |
| | result in a general protection fault at compile-time. |
---------------+------------------------------------------------------------
| PJ07215 | Optimization Problem: Calls to 16-bit functions could |
| | cause inappropriate tail-call optimization to occur. |
---------------+------------------------------------------------------------
| PJ07253 | An internal problem could cause a compile-time general |
| | protection fault when generating debugger information |
| | without optimization. |
---------------+------------------------------------------------------------
| PJ07259 | FE Problem: When utilizing a pointer to a pointer to data,|
| | the compiler is only dereferencing the pointer once. |
---------------+------------------------------------------------------------
| NOAPAR | Optimization Problem: An internal problem could cause |
| | a compile-time general protection fault when keeping a |
| | floating-point parameter alive in a register. |
============================================================================
| |
| All the fixes listed above were included in CS00034 |
| |
============================================================================
| NOAPAR | Optimization Problem: Strength reduction of a |
| | compiler-generated constant could result in a general |
| | protection fault at compile-time. |
---------------+------------------------------------------------------------
| NOAPAR | Optimization Problem: Tail recursion elimination could |
| | incorrectly handle parameter aliases. |
---------------+------------------------------------------------------------
| NOAPAR | BE Problem: Incorrect code may be generated for _Far16 |
| | _Pascal callback functions that return floating-point |
| | types. |
---------------+------------------------------------------------------------
| PJ07295 | Performance improvement of strstr. |
---------------+------------------------------------------------------------
| PJ07356 | _fullpath was not returning the correct result when |
| | ..\ was passed in as the partial path. |
---------------+------------------------------------------------------------
| NOAPAR | BE Problem: Incorrect code may be generated with the |
| | combination of _alloca and #pragma handler. |
============================================================================
| |
| All the fixes listed above were included in CS00036 |
| |
============================================================================
| PJ07414 | Initialization Problem: Floating point 387 not cleared |
| | during runtime initialization. |
---------------+------------------------------------------------------------
| PJ07631 | Calloc Problem: Storage returned from calloc was not |
| | set to zeroes after a realloc to a smaller size. |
---------------+------------------------------------------------------------
| NOAPAR | Dump Problem: Incorrect NPX values were being displayed |
| | for floating point exception dumps. |
---------------+------------------------------------------------------------
| NOAPAR | Fastsem: Making Fastsem multiprocessor safe. |
---------------+------------------------------------------------------------
| PJ07672 | I/O problem: When a nonseekable device (e.g. LPT1, CON, |
| | pipe, COM1) is opened with append mode, any attempt to |
| | write to such device will fail with an OS/2 error 132. |
---------------+------------------------------------------------------------
| PJ07673 | FE Problem: Pointer to structure member (that is a struct)|
| | assigned to pointer to structure member (also a struct) |
| | and then applying dot operator caused incorrect code. |
---------------+------------------------------------------------------------
| PJ07600 | DDE4.NDX - Removed incorrect references to the |
| | toolkit information. |
============================================================================
| |
| All the fixes listed above were included in CS00038 |
| |
============================================================================
| PJ07710 | Optimization Problem: Casting char or short types to a |
| | long type and then performing a bitwise AND on the result |
| | could lead to incorrect code generation if the upper 16 |
| | bits of the AND mask contain set bits. |
---------------+------------------------------------------------------------
| NOAPAR | Optimization Problem: A do loop with a complex while |
| | condition could be incorrectly unrolled. |
---------------+------------------------------------------------------------
| NOAPAR | Optimization Problem: An internal problem could cause |
| | a compile-time general protection fault when destroying |
| | unreachable code. |
---------------+------------------------------------------------------------
| PJ07429 | Optimization Problem: If the last use of a floating-point |
| | parameter occurs near the beginning of a function before |
| | any control flow statements, that parameter could be left |
| | on the floating-point stack when the function returns. |
---------------+------------------------------------------------------------
| PJ07422 | FE Problem: Compiler is erroneously generating warning |
| | message EDC0830 on some enum usage when compiled with |
| | -Ke+ switch. |
---------------+------------------------------------------------------------
| PJ07766 | Compiler Trap: The compiler would generate an exception |
| | if a bitfield was post-incremented and used as the right |
| | hand side of an assignment within the same statement. |
============================================================================
| |
| All the fixes listed above were included in CS00040 |
| |
============================================================================
| PJ07908 | Library Problem: Exception occurs when user presses |
| | control c in a conio input routine. |
---------------+------------------------------------------------------------
| PJ07909 | Library Problem: Memory allocation performance improvement|
---------------+------------------------------------------------------------
| PJ07984 | Optimization Problem: Constant propagation could be |
| | performed incorrectly when a store to one member of a |
| | union clobbers a store to another member. |
---------------+------------------------------------------------------------
| PJ07986 | Optimization Problem: If the last usage of a register |
| | parameter is a store in the last block of a loop, then |
| | incorrect code could be generated. |
---------------+------------------------------------------------------------
| PJ08032 | Optimization Problem: Post-incrementing a variable that |
| | is used as a parameter to consecutive function calls could|
| | cause incorrect constant propagation. |
---------------+------------------------------------------------------------
| PJ08046 | Library Problem: Change macro definition of isascii. |
---------------+------------------------------------------------------------
| PJ08065 | BE Problem: Pointer subtraction, where the pointers point |
| | to members of a structure, could cause incorrect code |
| | generation. |
---------------+------------------------------------------------------------
| PJ08066 | Optimization Problem: A ternary that uses volatile unions |
| | could cause incorrect code generation if the result of the|
| | conditional expression is used immediately after. |
============================================================================
| |
| All the fixes listed above were included in CS00042 |
| |
============================================================================
| NOAPAR | Compiler Trap: An internal problem could cause |
| | a general protection fault during compilation. |
---------------+------------------------------------------------------------
| NOAPAR | Library Problem: Fixed obscure malloc/heapmin bug. |
============================================================================
| |
| All the fixes listed above were included in CS00044 |
| |
============================================================================
| NOAPAR | Optimization Problem: An internal problem with loop |
| | invariant code motion could cause a compile-time error. |
---------------+------------------------------------------------------------
| PJ08413 | BE Problem: Under certain conditions, memset was not |
| | clearing the upper 2 bytes of the value register. |
---------------+------------------------------------------------------------
| PJ08285 | BE Problem: Incorrect code generated when right shifting |
| | an unsigned char, which has been casted to a long, and |
| | then assigning the result to an unsigned char. |
---------------+------------------------------------------------------------
| PJ08300 | RT Problem: _fullpath cannot parse "G:" , "C:", etc. |
| | This is an API behaviour. Since C386 can parse the |
| | above correctly, we decided to modify the call to |
| | the API to accept "C:", "G:", etc. |
---------------+------------------------------------------------------------
| PJ08415 | Optimization Problem: Global folding could be performed |
| | incorrectly when a store to one member of a union clobbers|
| | a store to another member. |
---------------+------------------------------------------------------------
| PJ08286 | Optimization Problem: Gotos near the bottom of a loop |
| | which jump to code right after the loop could cause |
| | incorrect code to be generated. |
---------------+------------------------------------------------------------
| PJ08456 | BE Problem: Returning a struct by value could result in |
| | incorrect code generation if the return statement calls |
| | another function whose return type is a pointer to struct.|
---------------+------------------------------------------------------------
| NOAPAR | Optimization Problem: Tail call optimization could |
| | generate incorrect code if the current function contains |
| | a call to _alloca. |
---------------+------------------------------------------------------------
| PJ08473 | FE Problem: Casts from function pointers to segmented |
| | data pointers were improperly being flagged as errors. |
============================================================================
| |
| All the fixes listed above were included in CS00046 |
| |
============================================================================
| PJ08488 | Optimization Problem: A parameter register could be |
| | incorrectly clobbered if a use follows a def. |
---------------+------------------------------------------------------------
| PJ08489 | Optimization Problem: The register assigner could |
| | choose the wrong register when trying to optimize the |
| | use of byte registers. (ie: AL vs AH) |
---------------+------------------------------------------------------------
| PJ08487 | Optimization Problem: A problem in the builtin memmove |
| | could cause a run-time general protection fault. |
---------------+------------------------------------------------------------
| PJ08486 | BE Problem: Assigning a function returning an aggregate |
| | to an array element whose index results from evaluating |
| | another function could cause incorrect code generation. |
============================================================================
| |
| All the fixes listed above were included in CS00048 |
| |
============================================================================
| PJ08712 | BE Problem: Casting 0xFFFF0001 to unsigned long and then |
| | to unsigned short incorrectly gives 0 instead of 1. |
---------------+------------------------------------------------------------
| PJ09159 | FE Problem: pointers in 16-bit function definitions |
| | were not getting _Seg16 qualifiers. |
---------------+------------------------------------------------------------
| PJ08715 | Optimization Problem: An internal problem with strength |
| | reduction could cause a compile-time error. |
---------------+------------------------------------------------------------
| PJ08714 | BE Problem: An internal problem with code generation |
| | could cause a compile-time general protection fault when |
| | generating debugger information. |
---------------+------------------------------------------------------------
| NOAPAR | BE Problem: Copying large parameters (> 4096 bytes) onto |
| | the stack could be done incorrectly. |
---------------+------------------------------------------------------------
| NOAPAR | BE Problem: An internal problem occuring while generating |
| | an assembler listing file could cause a compile-time |
| | general protection fault. |
---------------+------------------------------------------------------------
| PJ08753 | RT Problem: When flushing a buffer of size greater than |
| | 8192 (8K) bytes and the buffer contains no LF, the library|
| | will trap with a General Protection fault. This usually |
| | happens when the user sets the buffer size using setvbuf |
| | to a value greater than 8192. |
---------------+------------------------------------------------------------
| NOAPAR | RT Problem: Function _getdcwd incorrectly returns NULL |
| | and sets errno to 60 when the pointer passed to _getdcwd |
| | function as the second parameter is NULL. |
---------------+------------------------------------------------------------
| NOAPAR | FE Problem: Front-end might fail unpredictably when |
| | /Fl or /L option is specified without source listing (/Ls)|
============================================================================
| |
| All the fixes listed above were included in CS00050 |
| |
============================================================================
| QUAL-IMP | BE Problem: Incorrect code may be generated when copying |
| | structures whose size is less than 12 bytes. |
---------------+------------------------------------------------------------
| PJ11434 | Optimization Problem: Bad register selection around switch|
| | statements could cause incorrect code generation. |
---------------+------------------------------------------------------------
| PJ11435 | Optimization Problem: An internal problem occuring during |
| | global folding could cause a run-time exception. |
---------------+------------------------------------------------------------
| PJ11436 | Optimization Problem: When an infinite loop has a |
| | conditional return as its last statement, incorrect code |
| | may be generated if a variable used in the return was |
| | assigned to a register within the loop. |
---------------+------------------------------------------------------------
| PJ11437 | BE Problem: Without optimization, an expression of the |
| | form "*((char*)&array╒index■+i)" could generate an |
| | incorrect OBJ even though the ASM is correct. |
============================================================================
| |
| All the fixes listed above were included in CS00054 |
| |
============================================================================
| NOAPAR | Optimization Problem: Incorrect register selection could |
| | lead to traps or unexpected results with 32 to 16 or |
| | 16 to 32 code. |
============================================================================
| |
| All the fixes listed above were included in CS00056 |
| |
============================================================================